Data-Dependency Graph Transformations for Instruction Scheduling

نویسندگان

  • Mark Heffernan
  • Kent D. Wilken
چکیده

Instruction scheduling is one of the most important code optimizations because of its role in increasing processor utilization. Instruction scheduling reorders instructions to minimize pipeline stalls while preserving program semantics. For realistic processor models, this problem is NP-hard, and numerous heuristic and optimal (enumerative) techniques have been proposed. Heuristics can sometimes produce high-quality schedules, but do not guarantee optimal or near-optimal results. Optimal techniques can guarantee an optimal schedule, but scheduling time may be long or no optimal schedule may be found within a bounded time. This dissertation presents a set of novel graph transformations which addresses these deficiencies. The transformations can be applied as a pre-processing step to any instruction scheduling technique. Heuristically scheduling the transformed problems significantly reduces the expected execution time of the schedule for hard problems, and captures nearly all the improvement possible beyond scheduling the untransformed problem. The transformations significantly reduce the solution time of optimal schedulers, and more problems are solved within a bounded time. The transformations are described specifically for basic blocks, superblocks, and traces, and are generalized to arbitrary acyclic regions. Efficient algorithms are described for each transformation, and experimental data demonstrate that the algorithms are fast for real problems. Experimental results for scheduling regions from a set of industry standard benchmarks compiled using the GNU Compiler Collection (GCC) confirm the effectiveness of the transformations at improving heuristic and optimal instruction scheduling.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Code Motion Framework for Global Instruction Scheduling

A framework for global instruction scheduling is developed that progressively improves a given instruction schedule by eliminating delay slots in the schedule one at a time through the application of global code motions. The elimination of a delay slot is carried out in two steps: a goal oriented search which identiies a global code motion or a cascade of code motions that eliminate the delay w...

متن کامل

Instruction Scheduling Beyond Basic Blocks

Instruction scheduling consists of the rearrangement or transformation of program statements, usually at the intermediate language or assembly code level, in order to reduce possible run-time delays between instructions. Such transformations must preserve data dependency and are subject to other constraints. Highly optimizing compilers employing instruction-scheduling techniques have proven to ...

متن کامل

Gurrr: a Global Uniied Resource Requirements Representation

When compiling for instruction level parallelism (ILP), the integration of the optimization phases can lead to an improvement in the quality of code generated. However, since several diierent representations of a program are used in the various phases, only a partial integration has been achieved to date. We present a program representation that combines resource requirements and availability i...

متن کامل

Wavefront Scheduling : Path Based Data Representation andScheduling

The IA-64 architecture is rich with features that enable aggressive exploitation of instruction-level parallelism. Features such as speculation, predication, multiway branches and others provide compilers with new opportunities for the extraction of parallelism in programs. Code scheduling is a central component in any compiler for the IA-64 architecture. This paper describes the implementation...

متن کامل

Register allocation sensitive region scheduling

Because of the interdependences between instruction scheduling and register allocation, it is not clear which of these two phases should run rst. In this paper, we describe how we modiied a global instruction scheduling technique to make it cooperate with a subsequent register allocation phase. In particular, our cooperative global instruction scheduler performs region scheduling transformation...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • J. Scheduling

دوره 8  شماره 

صفحات  -

تاریخ انتشار 2005